package semana3.strings.cadenasdecaracteres;

public class CadenasDeCaracteres {

	public int contarVocales(String frase) {
		int contador = 0;
		if (frase.isEmpty()) {
			System.out.println("No has escrito ninguna frase");
		} else {
			for (int i = 0; i < frase.length(); i++) {
				if (esVocal(frase.charAt(i))) {
					contador++;
				}
			}
		}
		return contador;
	}

	public boolean esVocal(char a) {
		boolean vocal = false;
		switch (a) {
		case 'a':
		case 'e':
		case 'i':
		case 'o':
		case 'u':
		case 'A':
		case 'E':
		case 'I':
		case 'O':
		case 'U':

			vocal = true;
			break;
		default:
			vocal = false;

		}
		return vocal;
	}

	public int contarMayusculas(String frase) {
		int contador = 0;

		for (int i = 0; i < frase.length(); i++) {
			if (esMayuscula(frase.charAt(i))) {
				contador++;
			}
		}

		return contador;
	}

	public boolean esMayuscula(char c) {
		boolean mayuscula = false;

		if (c >= 65 && c <= 90) {
			mayuscula = true;
		}

		return mayuscula;
	}

	public boolean esMinuscula(char c) {
		boolean minuscula = false;

		if (c >= 97 && c <= 123) {
			minuscula = true;
		}

		return minuscula;
	}

	public int contarMinusculas(String frase) {
		int contador = 0;

		for (int i = 0; i < frase.length(); i++) {
			if (esMinuscula(frase.charAt(i))) {
				contador++;
			}
		}

		return contador;
	}

	public static int numeroCaracterCadena(String cadena, char c) {
		int contador = 0;
		for (int i = 0; i < cadena.length(); i++) {
			if (cadena.charAt(i) == c) {
				contador++;
			}
		}

		return contador;
	}

	public String quitarBlancos(String cadena) {
		String sol = "";
		for (int i = 0; i < cadena.length(); i++) {
			if (cadena.charAt(i) != ' ') {
				sol = sol + cadena.charAt(i);
			}
		}
		return sol;
	}

	public char quitarTildes(char c) {
		char sol = c;

		switch (c) {
		case 'á':
			sol = 'a';
			break;
		case 'é':
			sol = 'e';
			break;
		case 'í':
			sol = 'i';
			break;
		case 'ó':
			sol = 'o';
			break;
		case 'ú':
			sol = 'u';
			break;
		case 'ñ':
			sol = 'n';
			break;
		case 'Á':
			sol = 'A';
			break;
		case 'É':
			sol = 'E';
			break;
		case 'Í':
			sol = 'I';
			break;
		case 'Ó':
			sol = 'O';
			break;
		case 'Ú':
			sol = 'U';
			break;
		}

		return sol;
	}

	public String vocAMay(String cadenaOriginal) {
		String cadenaFinal = "";
		for (int i = 0; i < cadenaOriginal.length(); i++) {
			if (esVocal(cadenaOriginal.charAt(i))) {
				cadenaFinal += aMayuscula(cadenaOriginal.charAt(i));
			} else {
				cadenaFinal += cadenaOriginal.charAt(i);
			}
		}
		return cadenaFinal;
	}

	public char aMayuscula(char c) {
		char sol = c;
		if (esMinuscula(c)) {
			sol = (char) (c - 32);
		}
		return sol;
	}

	public char aMinuscula(char c) {
		char sol = c;
		if (esMayuscula(c)) {
			sol = (char) (c + 32);
		}
		return sol;
	}
	public String cadeaReves(String cadena) {
		String cadenaReves = "";
		for (int i = cadena.length()-1; i >= 0; i--) {
			cadenaReves = cadenaReves + cadena.charAt(i);
		}
		return cadenaReves;
	}

}
